#!/bin/bash
# 服务器端部署脚本 - 在服务器上执行
# 使用方法: ssh root@47.237.10.129 然后执行此脚本内容

echo "=== 开始服务器端部署 ==="

# 1. 验证上传的文件
echo "检查上传的压缩包..."
if [ -f "/tmp/backend-complete.tar.gz" ]; then
    echo "✓ 压缩包存在"
    ls -lh /tmp/backend-complete.tar.gz
else
    echo "❌ 压缩包不存在，请先上传文件"
    exit 1
fi

# 2. 停止现有进程
echo "停止现有Node.js进程..."
pkill -f node
killall node 2>/dev/null || true
sleep 2

# 3. 清理并重建目录
echo "清理并重建后端目录..."
rm -rf /opt/cumbull/backend
mkdir -p /opt/cumbull/backend
cd /opt/cumbull/backend

# 4. 解压代码
echo "解压后端代码..."
tar -xzf /tmp/backend-complete.tar.gz --strip-components=1

# 5. 验证关键文件
echo "验证关键文件..."
if [ -f "start-server.js" ] && [ -f "package.json" ]; then
    echo "✓ 关键文件存在"
    echo "文件列表:"
    ls -la start-server.js package.json
    echo "src目录:"
    ls -la src/ 2>/dev/null || echo "src目录不存在"
else
    echo "❌ 关键文件缺失！"
    echo "当前目录内容:"
    ls -la
    exit 1
fi

# 6. 配置环境变量
echo "配置环境变量..."
cat > .env.production << 'EOF'
PORT=8080
NODE_ENV=production
DB_HOST=localhost
DB_USER=cumbull_user
DB_PASSWORD=CuMrBull2024!
DB_NAME=cumbull_db
JWT_SECRET=your-super-secret-jwt-key-2024
CORS_ORIGIN=*
EOF

echo "✓ 环境变量配置完成"

# 7. 安装依赖
echo "安装依赖..."
npm install --omit=dev

if [ $? -eq 0 ]; then
    echo "✓ 依赖安装成功"
else
    echo "❌ 依赖安装失败"
    exit 1
fi

# 8. 启动服务
echo "启动Node.js服务..."
nohup node start-server.js > /var/log/backend.log 2>&1 &

# 9. 等待启动
echo "等待服务启动..."
sleep 5

# 10. 验证服务状态
echo "=== 服务状态检查 ==="
echo "Node.js进程:"
ps aux | grep node | grep -v grep

echo "端口监听:"
netstat -tlnp | grep 8080

echo "服务日志:"
tail -20 /var/log/backend.log

echo "健康检查:"
curl -s http://localhost:8080/health || echo "健康检查失败"

echo "=== 部署完成 ==="
echo "如果一切正常，服务应该运行在: http://47.237.10.129:8080"
echo "查看完整日志: tail -f /var/log/backend.log"